]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
popupMenu: Respect items' :can-focus property
authorFlorian Müllner <fmuellner@gnome.org>
Tue, 11 Sep 2018 15:55:36 +0000 (17:55 +0200)
committerFlorian Müllner <florian.muellner@gmail.com>
Sat, 9 Feb 2019 14:48:27 +0000 (14:48 +0000)
Menu items use a single 'active' state that follows both hover and
keyboard focus. It therefore makes sense for the active item to always
grab the focus, in particular as an item that is sensitive but not
focusable by keynav would be rather weird.

As it turns out, we do have a case that is weird enough where we want
exactly that, so only grab focus if the actor's :can-focus property
allows it.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/171

js/ui/popupMenu.js

index 843af82239c2f3242839742c0d3fbbe45a10a4aa..283934c2878eecff8875adcf4b76d09fbde9f563 100644 (file)
@@ -173,7 +173,8 @@ var PopupBaseMenuItem = class {
             this.active = active;
             if (active) {
                 this.actor.add_style_class_name('selected');
-                this.actor.grab_key_focus();
+                if (this.actor.can_focus)
+                    this.actor.grab_key_focus();
             } else {
                 this.actor.remove_style_class_name('selected');
                 // Remove the CSS active state if the user press the button and